home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 1
/
Gold Medal Software Volume 1 (Gold Medal) (1994).iso
/
graphics
/
tierra40.arj
/
TIERRA
/
GB3
/
0093AAA.TIE
< prev
next >
Wrap
Text File
|
1992-09-08
|
5KB
|
100 lines
format: 3 bits: 3
genotype: 0093aaa parent genotype: 0666god
track 0: prot
xwr
nop1 ; 010 000 00 0 beginning marker
nop1 ; 010 000 00 0 beginning marker
nop1 ; 010 000 00 0 beginning marker
nop1 ; 010 000 00 0 beginning marker
zero ; 010 000 00 0 to clear bx
enter ; 010 000 00 0 to clear bx
adrb ; 010 000 00 0 find start
nop0 ; 010 000 00 0 complement to beginning marker
nop0 ; 010 000 00 0 complement to beginning marker
nop0 ; 010 000 00 0 complement to beginning marker
nop0 ; 010 000 00 0 complement to beginning marker
exch ; 010 000 00 0 ax = templ size, bx = start addr after templ
sub ; 010 000 00 0 ax = start addr
zero ; 010 000 00 0 to clear bx
exch ; 010 000 00 0 to clear bx, ax = start, bx = 0
adrf ; 010 000 00 0 find end
nop0 ; 010 000 00 0 complement to end marker
nop0 ; 010 000 00 0 complement to end marker
nop0 ; 010 000 00 0 complement to end marker
nop1 ; 010 000 00 0 complement to end marker
inc ; 010 000 00 0 increment ax, to include dummy instruction at end
rollu ; 010 000 00 0 ax = start, bx = end
push ; 010 000 00 0 save start addr on stack
sub ; 010 000 00 0 ax = bx - ax, ax = size
pop ; 010 000 00 0 pop start addr from stack: ax = start, bx = size
nop1 ; 010 000 00 0 reproduction loop marker
nop1 ; 010 000 00 0 reproduction loop marker
nop0 ; 010 000 00 0 reproduction loop marker
nop1 ; 010 000 00 0 reproduction loop marker
mal ; 010 000 00 0 allocate daughter, ax = daughter, bx = mom, cx = size
call ; 010 000 00 0 call template below (copy procedure)
nop0 ; 010 000 00 0 copy procedure complement
nop0 ; 010 000 00 0 copy procedure complement
nop1 ; 010 000 00 0 copy procedure complement
nop1 ; 010 000 00 0 copy procedure complement, ax = mom, bx = size
rolld ; 010 000 00 0 put ax = mom, bx = size
zero ; 010 000 00 0 set offset of IP into daughter at 0
divide ; 010 000 00 0 create independent daughter cell
rolld ; 010 000 00 0 put ax = mom, bx = size
jmpb ; 010 000 00 0 jump back to template below (reproduction loop)
nop0 ; 010 000 00 0 reproduction loop complement
nop0 ; 010 000 00 0 reproduction loop complement
nop1 ; 010 000 00 0 reproduction loop complement
nop0 ; 010 000 00 0 reproduction loop complement
ifz ; 010 000 00 0 dummy instruction to separate templates
nop1 ; 010 000 00 0 copy procedure template
nop1 ; 010 000 00 0 copy procedure template
nop0 ; 010 000 00 0 copy procedure template
nop0 ; 010 000 00 0 copy procedure template
rolld ; 010 000 00 0 roll mom's start address to ax
push ; 010 000 00 0 push mom's start address on stack
rolld ; 010 000 00 0 roll mom's size to ax
push ; 010 000 00 0 push mom's size on stack
rollu ; 010 000 00 0 roll stack back up
rollu ; 010 000 00 0 roll stack back up
nop1 ; 010 000 00 0 copy loop template
nop0 ; 010 000 00 0 copy loop template
nop1 ; 010 000 00 0 copy loop template
nop0 ; 010 000 00 0 copy loop template
movii ; 010 000 00 0 move instruction from mother [bx] to daughter [ax]
rolld ; 010 000 00 0 roll size down to ax
rolld ; 010 000 00 0 roll size down to ax
dec ; 010 000 00 0 decrement size
ifz ; 010 000 00 0 test for end of loop (size = 0)
jmp ; 010 000 00 0 jump out of loop
nop0 ; 010 000 00 0 copy procedure exit complement
nop1 ; 010 000 00 0 copy procedure exit complement
nop0 ; 010 000 00 0 copy procedure exit complement
nop0 ; 010 000 00 0 copy procedure exit complement
rollu ; 010 000 00 0 roll mother's address into ax
inc ; 010 000 00 0 increment mother's address
rollu ; 010 000 00 0 roll daughter's address into ax
inc ; 010 000 00 0 increment daughter's address
jmpb ; 010 000 00 0 jump to top of copy loop
nop0 ; 010 000 00 0 copy loop complement
nop1 ; 010 000 00 0 copy loop complement
nop0 ; 010 000 00 0 copy loop complement
nop1 ; 010 000 00 0 copy loop complement
ifz ; 010 000 00 0 dummy instruction to separate templates
nop1 ; 010 000 00 0 copy procedure exit template
nop0 ; 010 000 00 0 copy procedure exit template
nop1 ; 010 000 00 0 copy procedure exit template
nop1 ; 010 000 00 0 copy procedure exit template
pop ; 010 000 00 0 pop size from stack into ax
pop ; 010 000 00 0 pop mom's address from stack into ax
pop ; 010 000 00 0 pop call's address from stack into ax
jmp ; 010 000 00 0 jump to instruction after call (return)
ifz ; 010 000 00 0 dummy instruction to separate templates
nop1 ; 010 000 00 0 end marker
nop1 ; 010 000 00 0 end marker
nop1 ; 010 000 00 0 end marker
nop0 ; 010 000 00 0 end marker
ifz ; 010 000 00 0 end marker